selenium, add restoration test to page spec
[lhc/web/wiklou.git] / tests / selenium / specs / page.js
1 'use strict';
2 const assert = require( 'assert' ),
3 DeletePage = require( '../pageobjects/delete.page' ),
4 RestorePage = require( '../pageobjects/restore.page' ),
5 EditPage = require( '../pageobjects/edit.page' ),
6 HistoryPage = require( '../pageobjects/history.page' ),
7 UserLoginPage = require( '../pageobjects/userlogin.page' );
8
9 describe( 'Page', function () {
10
11 var content,
12 name;
13
14 function getTestString() {
15 return Math.random().toString() + '-öäü-♠♣♥♦';
16 }
17
18 before( function () {
19 // disable VisualEditor welcome dialog
20 UserLoginPage.open();
21 browser.localStorage( 'POST', { key: 've-beta-welcome-dialog', value: '1' } );
22 } );
23
24 beforeEach( function () {
25 browser.deleteCookie();
26 content = getTestString();
27 name = getTestString();
28 } );
29
30 it( 'should be creatable', function () {
31
32 // create
33 EditPage.edit( name, content );
34
35 // check
36 assert.equal( EditPage.heading.getText(), name );
37 assert.equal( EditPage.displayedContent.getText(), content );
38
39 } );
40
41 it( 'should be editable', function () {
42
43 // create
44 browser.call( function () {
45 return EditPage.apiEdit( name, content );
46 } );
47
48 // edit
49 EditPage.edit( name, content );
50
51 // check
52 assert.equal( EditPage.heading.getText(), name );
53 assert.equal( EditPage.displayedContent.getText(), content );
54
55 } );
56
57 it( 'should have history', function () {
58
59 // create
60 browser.call( function () {
61 return EditPage.apiEdit( name, content );
62 } );
63
64 // check
65 HistoryPage.open( name );
66 assert.equal( HistoryPage.comment.getText(), `(Created page with "${content}")` );
67
68 } );
69
70 it( 'should be deletable', function () {
71
72 // login
73 UserLoginPage.loginAdmin();
74
75 // create
76 browser.call( function () {
77 return EditPage.apiEdit( name, content );
78 } );
79
80 // delete
81 DeletePage.delete( name, content + '-deletereason' );
82
83 // check
84 assert.equal(
85 DeletePage.displayedContent.getText(),
86 '"' + name + '" has been deleted. See deletion log for a record of recent deletions.\nReturn to Main Page.'
87 );
88
89 } );
90
91 it( 'should be restorable', function () {
92
93 // login
94 UserLoginPage.loginAdmin();
95
96 // create
97 browser.call( function () {
98 return EditPage.apiEdit( name, content );
99 } );
100
101 // delete
102 browser.call( function () {
103 return DeletePage.apiDelete( name, content + '-deletereason' );
104 } );
105
106 // restore
107 RestorePage.restore( name, content + '-restorereason' );
108
109 // check
110 assert.equal( RestorePage.displayedContent.getText(), name + ' has been restored\nConsult the deletion log for a record of recent deletions and restorations.' );
111
112 } );
113
114 } );